package com.dodayum.controller;

import com.dodayum.dao.TaskAddRemarkDTO;
import com.dodayum.entity.TaskEntity;
import com.dodayum.service.TaskService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping("/task")
public class TaskController {
    /*
    查
    增
    改状态
    加备注
     */

    @Resource
    TaskService taskService;

    /**
     * 查询，默认10个
     * @param sourceType {@link String} 任务类型
     * @return {@link List<TaskEntity>} 任务列别
     */
    @GetMapping({"/query/{sourceType}","/query"})
    public List<TaskEntity> query(@PathVariable(required = false) String sourceType) {
        return taskService.query(sourceType);
    }

    /**
     * 创建
     * @param request {@link TaskEntity}
     */
    @PostMapping("/create")
    public void create(@RequestBody TaskEntity request) {
        taskService.create(request);
    }

    /**
     * 根据id更新状态，改成已完成
     * @param id {@link String} id
     */
    @GetMapping("/updateStatus/{id}")
    public void updateStatus(@PathVariable Integer id) {
        taskService.updateStatus(id);
    }

    /**
     * 添加备注
     * @param request {@link TaskAddRemarkDTO} 只有新id和新备注
     */
    @PostMapping("/addRemark")
    public void addRemark(@RequestBody TaskAddRemarkDTO request) {
        taskService.addRemark(request);
    }

    /**
     * 查询所有任务类型
     * @return {@link List<String>} 查询所有任务类型
     */
    @GetMapping("/queryAllSource")
    public List<String> queryAllSource() {
        return taskService.queryAllSource();
    }

    @GetMapping("/queryById/{id}")
    public TaskEntity queryById(@PathVariable Integer id){
        return taskService.queryById(id);
    }
}
